﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace QuanLyThietBi
{
    public partial class frmquanlyphong : Form
    {
        SqlConnection con;
        CXuly_loaiphong xulyloaiphong;
        CXuly_thietbi xulythietbi;
        CXuly_phong xulyphong;
        CXuly_vattu xulyvattu;
        CXuly_loaivattu xulyloaivattu;
        public frmquanlyphong(SqlConnection con)
        {
            InitializeComponent();
            this.con = con;
            xulythietbi = new CXuly_thietbi(con);
            xulyphong = new CXuly_phong(con);
            xulyloaiphong = new CXuly_loaiphong(con);
            xulyvattu = new CXuly_vattu(con);
            xulyloaivattu = new CXuly_loaivattu(con);
        }
        private void frmquanlyphong_Load(object sender, EventArgs e)
        {
           
            hienthidsphong();
        }
        public void hienthidsphong()
        {
            List<CPhong> ds = xulyphong.getdsphong();
            foreach (CPhong a in ds)
            {
                a.Loaiphong = xulyloaiphong.tim(a.Loaiphong.Maloaiphong);
               
            }
            lstphong.Items.Clear();
            foreach (CPhong p in ds)
            {
                ListViewItem lvi = lstphong.Items.Add(p.Sophong);
                if (p.Tinhtrang == 0)
                    lvi.SubItems.Add("Chưa hoạt động");
                else if (p.Tinhtrang == 1)
                    lvi.SubItems.Add("Trống");
                else if (p.Tinhtrang == 2)
                    lvi.SubItems.Add("Đã thuê");
                else if (p.Tinhtrang == 3)
                    lvi.SubItems.Add("Đã đặt");
                else
                    lvi.SubItems.Add("Sửa chữa");
             
                lvi.SubItems.Add(p.Loaiphong.Tenloaiphong);
            }
        }
        public void hienthidsloaiphong()
        {
            List<CLoaiphong> ds = xulyloaiphong.getdsloaiphong();
            foreach (CLoaiphong x in ds)
            {
                cbbloaiphong.Items.Add(x.Tenloaiphong);
            }
        }
        public void hienthiphong(CPhong p)
        {
            txtsophong.Text = p.Sophong;
            if (p.Tinhtrang == 0)
                txttinhtrang.Text = "Chưa hoạt động";
            else if (p.Tinhtrang == 1)
                txttinhtrang.Text = "Trống";
            else if (p.Tinhtrang == 2)
                txttinhtrang.Text = "Đã thuê";
            else if (p.Tinhtrang == 3)
                txttinhtrang.Text = "Đã đặt";
            else
                txttinhtrang.Text = "Sửa chữa";
            cbbloaiphong.Text = p.Loaiphong.Tenloaiphong;
            lstthietbiphong.Items.Clear();
            foreach (CThietbi tb in p.Danhsachthietbi)
            {
                ListViewItem l = lstthietbiphong.Items.Add(tb.Mathietbi);
                l.SubItems.Add(tb.Vattu.Tenvattu);
            }
        }
        private void cbbloaiphong_SelectedIndexChanged(object sender, EventArgs e)
        {
            lstthietbi.Items.Clear();
            lstthietbiphong.Items.Clear();
            List<CThietbi> dsthietbi = xulythietbi.getdsthietbi();
            foreach (CThietbi tb in dsthietbi)
            {
                tb.Vattu = xulyvattu.tim(tb.Vattu.Mavattu);
                tb.Vattu.Loaivattu = xulyloaivattu.tim(tb.Vattu.Loaivattu.Maloai);
            }

            CLoaiphong loaiphong = xulyloaiphong.tim(cbbloaiphong.SelectedItem.ToString());
            foreach (CChitietloaiphong ct in loaiphong.Chitietloaiphong)
            {
                ct.Loaivattu = xulyloaivattu.tim(ct.Maloaivattu);
                foreach (CThietbi tb in dsthietbi)
                {
                    if (tb.Vattu.Loaivattu.Maloai == ct.Loaivattu.Maloai)
                    {
                        ListViewItem lvi = lstthietbi.Items.Add(tb.Mathietbi);
                        lvi.SubItems.Add(tb.Vattu.Tenvattu);
                    }

                }
            }

           
        }
        private void btnforward_Click(object sender, EventArgs e)
        {
            CLoaiphong l = xulyloaiphong.tim(cbbloaiphong.Text.ToString());
            
            foreach (ListViewItem lvi in lstthietbi.SelectedItems)
            {
                string mathietbi = lvi.SubItems[0].Text;
                CThietbi tb = xulythietbi.tim(mathietbi);
                tb.Vattu = xulyvattu.tim(tb.Vattu.Mavattu);
                tb.Vattu.Loaivattu = xulyloaivattu.tim(tb.Vattu.Loaivattu.Maloai);
                int soluong=0;
                foreach (ListViewItem lv in lstthietbiphong.Items)
                {
                    CThietbi a = xulythietbi.tim(lv.SubItems[0].Text);
                    a.Vattu = xulyvattu.tim(a.Mavattu);

                    if (a.Vattu.Loaivattu.Maloai == tb.Vattu.Loaivattu.Maloai)
                        soluong++;
                }
                foreach (CChitietloaiphong ct in l.Chitietloaiphong)
                {
                    if (ct.Maloaivattu == tb.Vattu.Loaivattu.Maloai)
                    {
                        if (soluong < ct.Soluong)
                        {
                            ListViewItem lvi2 = lstthietbiphong.Items.Add(lvi.SubItems[0].Text);
                            lvi2.SubItems.Add(lvi.SubItems[1].Text);
                            lstthietbi.Items.Remove(lvi);
                        }
                        else
                            MessageBox.Show("Loại vật tư này đã đủ");
                        break;
                    }
                    
                }
            }
        }
        private void lstphong_SelectedIndexChanged(object sender, EventArgs e)
        {
            foreach (ListViewItem lvi in lstphong.SelectedItems)
            {
                string sophong = lvi.SubItems[0].Text;
                CPhong p = new CPhong();
                p = xulyphong.tim(sophong);
                p.Loaiphong = xulyloaiphong.tim(p.Loaiphong.Maloaiphong);
                foreach (CThietbi tb in p.Danhsachthietbi)
                {
                    tb.Vattu = xulyvattu.tim(tb.Vattu.Mavattu);
                }
                hienthiphong(p);
            }
        }
        private void btnback_Click(object sender, EventArgs e)
        {
            foreach (ListViewItem lvi in lstthietbiphong.SelectedItems)
            {
                ListViewItem lvi2 = lstthietbi.Items.Add(lvi.SubItems[0].Text);
                lvi2.SubItems.Add(lvi.SubItems[1].Text);
                lstthietbiphong.Items.Remove(lvi);
            }
        }
        private void btnthem_Click(object sender, EventArgs e)
        {
            CPhong p = new CPhong();
            p.Sophong = txtsophong.Text;
           // p.Tinhtrang = txttinhtrang.Text;
            string tenloaiphong = cbbloaiphong.Text.ToString();
            p.Loaiphong = xulyloaiphong.tim(tenloaiphong);
            foreach (ListViewItem lvi in lstthietbiphong.Items)
            {
                string mathietbi = lvi.SubItems[0].Text;
                CThietbi tb = xulythietbi.tim(mathietbi);
                tb.Vattu = xulyvattu.tim(tb.Vattu.Mavattu);
                tb.Vattu.Loaivattu = xulyloaivattu.tim(tb.Vattu.Loaivattu.Maloai);
                p.Danhsachthietbi.Add(tb);
            }
            if(xulyphong.them(p)==false) MessageBox.Show("Trùng khoá chính");
            hienthidsphong();
        }
        private void btnsua_Click(object sender, EventArgs e)
        {
            CPhong p = new CPhong();
            p.Sophong = txtsophong.Text;
            //p.Tinhtrang = txttinhtrang.Text;
            string tenloaiphong = cbbloaiphong.Text.ToString();
            p.Loaiphong = xulyloaiphong.tim(tenloaiphong);
            foreach (ListViewItem lvi in lstthietbiphong.Items)
            {
                string mathietbi = lvi.SubItems[0].Text;
                CThietbi tb = xulythietbi.tim(mathietbi);
                tb.Vattu = xulyvattu.tim(tb.Vattu.Mavattu);
                p.Danhsachthietbi.Add(tb);
            }
            xulyphong.sua(p);
            hienthidsphong();
        }
        private void btnxoa_Click(object sender, EventArgs e)
        {
            string sophong = txtsophong.Text;
            xulyphong.xoa(sophong);
            hienthidsphong();
        }

        private void cbbloaiphong_Enter(object sender, EventArgs e)
        {
            cbbloaiphong.Items.Clear();
            hienthidsloaiphong();
        }

    }
}
